home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / qbsnip.zip / DISKSER.BAS < prev    next >
BASIC Source File  |  1997-06-20  |  831b  |  37 lines

  1. ' DISKSER.BAS
  2. ' by Bob Perkins (QUIK_BAS FidoNet Echo)
  3. '
  4. ' Donated to the public domain
  5. ' No warranties or guarantees are expressed or implied.
  6. '
  7. ' Purpose: Read the volume serial number
  8.  
  9.  
  10. DECLARE FUNCTION diskser$ (drive%)
  11.  
  12. '$INCLUDE: 'QB.BI'
  13.  
  14. '0 = A:, 1 = B:, 2 = C:, 3 = D:, 4 = E:, etc.
  15.  
  16. CLS : PRINT diskser$(2)
  17.  
  18.  
  19. FUNCTION diskser$ (drive%)
  20. DIM regsX AS regtypeX
  21. regsX.ax = &H6900: regsX.bx = drive% + 1
  22. dosdata$ = STRING$(25, 0)
  23. regsX.ds = VARSEG(dosdata$): regsX.dx = SADD(dosdata$)
  24. FOR i% = 1 TO 3   'Tries to read 3 times (for slow floppy)
  25.     interruptX &H21, regsX, regsX
  26.     IF (regsX.flags AND 1) THEN
  27.         diskser$ = ""
  28.     ELSE
  29.         lowbyte% = CVI(MID$(dosdata$, 3, 2))
  30.         hibyte% = CVI(MID$(dosdata$, 5, 2))
  31.         diskser$ = HEX$(hibyte%) + "-" + HEX$(lowbyte%)
  32.         EXIT FOR
  33.     END IF
  34. NEXT
  35. END FUNCTION
  36.  
  37.